<?
require_once('Raca.php');
require_once('Outras.php');

session_start();
if ($_GET['restart'] == 'true') {
	session_destroy();
	session_start();
}

$racas[] = new Gigante('1');
$racas[] = new Minotauro('1');
$racas[] = new Anao('1');
$racas[] = new Humano('1');
$racas[] = new Elfo('1');
$racas[] = new Driade('1');
$racas[] = new Vampiro('1');
$racas[] = new Orque('1');
$racas[] = new MortoVivo('1');

echo '<table border="1"><tr><td></td>';
for ($j=0; $j<sizeof($racas); $j++) {
	$raca = $racas[$j];
	echo '<td>' . $raca->getValue('nome') . '</td>';
}

for ($i=0; $i<sizeof($racas); $i++) {
	echo '<tr>';
	$raca = $racas[$i];
	echo '<td>' . $raca->getValue('nome') . '</td>';
	for ($j=0; $j<sizeof($racas); $j++) {
		echo '<td>';
		
		if ($racas[$i] != $racas[$j]) {
			
			$jog1_vit=0; $jog2_vit=0;
			for ($k=1; $k<=10; $k++) {
		
				$raca1 = new $racas[$i]('1');
				$raca2 = new $racas[$j]('1');
				
				$jog1['nome'] 		= $raca1->getValue('nome');
				$jog1['xp'] 		= 0;
				$jog1['ouro'] 		= 40;
				$jog1['peso'] 		= 0;
				$jog1['dano'] 		= $raca1->getValue('dano');
				$jog1['armadura'] 	= $raca1->getValue('armadura');
				$jog1['hp_max'] 		= $raca1->getValue('hp');
				$jog1['mana_max'] 	= $raca1->getValue('mana');
				$jog1['estamina_max'] = $raca1->getValue('estamina');
				$jog1['moral_max'] 	= $raca1->getValue('moral');
				$jog1['hp'] 		= $jog1['hp_max'];
				$jog1['mana'] 		= $jog1['mana_max'];
				$jog1['estamina'] 	= $jog1['estamina_max'];
				$jog1['moral'] 		= $jog1['moral_max'];
				$jog1['forca'] 		= $raca1->getValue('forca');
				$jog1['pontaria'] 	= $raca1->getValue('pontaria');
				$jog1['evasao'] 		= $raca1->getValue('evasao');
				$jog1['inteligencia'] = $raca1->getValue('inteligencia');
				$jog1['carisma'] 	= $raca1->getValue('carisma');

				$jog2['nome'] 		= $raca2->getValue('nome');
				$jog2['xp'] 		= 0;
				$jog2['ouro'] 		= 40;
				$jog2['peso'] 		= 0;
				$jog2['dano'] 		= $raca2->getValue('dano');
				$jog2['armadura'] 	= $raca2->getValue('armadura');
				$jog2['hp_max'] 		= $raca2->getValue('hp');
				$jog2['mana_max'] 	= $raca2->getValue('mana');
				$jog2['estamina_max'] = $raca2->getValue('estamina');
				$jog2['moral_max'] 	= $raca2->getValue('moral');
				$jog2['hp'] 		= $jog2['hp_max'];
				$jog2['mana'] 		= $jog2['mana_max'];
				$jog2['estamina'] 	= $jog2['estamina_max'];
				$jog2['moral'] 		= $jog2['moral_max'];
				$jog2['forca'] 		= $raca2->getValue('forca');
				$jog2['pontaria'] 	= $raca2->getValue('pontaria');
				$jog2['evasao'] 	= $raca2->getValue('evasao');
				$jog2['inteligencia'] = $raca2->getValue('inteligencia');
				$jog2['carisma'] 	= $raca2->getValue('carisma');
				
				$_SESSION['jog1'] = $jog1;
				$_SESSION['jog2'] = $jog2;
				
				$_SESSION['id'] = session_id();
				
				/*
				echo '<p>Nº Combates: ' . $_SESSION['ncombates'];
				echo '<br />Vitórias '. $_SESSION['jog1']['nome'] . ': '. $jog1_vit;
				echo '<br />Vitórias ' . $_SESSION['jog2']['nome'] . ': '. $jog2_vit;
				echo '</p>';

				echo '<p><a href="index.php?restart=true">Recomeçar</a> <a href="index.php">Combater</a> <a href="index.php?detalhes=1">Combater+</a></p>';
				echo '<font size="1">';
				*/
				
				$_SESSION['rondas'] = 0;
				$_SESSION['ultimo_turno'] = 1;
				
				while($_SESSION['jog1']['hp'] > 0 && $_SESSION['jog2']['hp'] > 0) {

					$_SESSION['rondas']++;
					if ($_SESSION['ultimo_turno'] == 1) {
						$atacante = $_SESSION['jog1']; $defensor = $_SESSION['jog2'];
					} else {
						$atacante = $_SESSION['jog2']; $defensor = $_SESSION['jog1'];
					}
					/*
					echo '<br />Turno '. $_SESSION['turno'] . ': Atacante: '. $atacante['nome'] .' ('.
						$atacante['hp'] .'/'.$atacante['hp_max'].') ('.
						$atacante['estamina'] .'/'.$atacante['estamina_max'].') ('.
						$atacante['moral'] .'/'.$atacante['moral_max'].')';
					*/
					if ($atacante["estamina"] > 0) {
						$defensor['agilidade'] = ceil(($defensor["forca"] * 4 + $defensor['estamina']) / (($defensor["hp_max"] + $defensor["peso"])) / 4);
						// accao atacante = close combate
						$atacante['accao'] = rand (1, $atacante['pontaria']);
						// accao defensiva = dodge
						$defensor['accao'] = rand (1, ceil($defensor["agilidade"]));
						// accao defensiva = parry
						//$defensor['accao'] = rand (1, ceil(($defensor["forca"] + $defensor["hp_max"]) / 2));
						
						$atacante['acerta'] = $atacante['accao'] - $defensor['accao'];
						
						//echo ', pontaria... (' . $atacante['acerta'] . ') ';
						$atacante['sorte_forca'] = rand(1, $atacante["forca"]);
						$atacante['dano_total'] = round($atacante["dano"] * ($atacante['sorte_forca'] / ($atacante["forca"])));

						$atacante['dano_final'] = $atacante['dano_total'] - round($defensor["armadura"]);
						
						// ACTUALIZAR ESTAMINA DO ATACANTE
						if ($atacante["estamina"] - floor($atacante['sorte_forca'] / 3) >= 0) $atacante["estamina"] = $atacante["estamina"] - floor($atacante['sorte_forca'] / 3);
						else $atacante["estamina"] = 0;
								
						if ($atacante['acerta'] > 0) {
							//echo ' acertou!';
							if ($atacante['dano_final'] > 0) {
								
								// ACTUALIZAR HP DO DEFENSOR
								$defensor["hp"] = $defensor["hp"] - $atacante['dano_final'];
								
								
								// ACTUALIZAR MORAL DO ATACANTE
								if ($atacante["moral"] + 2 > $atacante["moral_max"]) $atacante["moral"] = $atacante["moral_max"];
								else $atacante["moral"]++;
							}
						} else {
							if ($atacante["moral"] - 1 >= 0) $atacante["moral"]--;
							else $atacante["moral"] = $atacante["moral"] + ceil(($atacante["moral_max"] - $atacante["moral"]) / 2);
						}
					} else $atacante['estamina'] = $atacante["estamina"] + ceil(($atacante["estamina_max"] - $atacante["estamina"]) / 2);

					if ($_SESSION['ultimo_turno'] == 1) {
						$_SESSION['jog1'] = $atacante; $_SESSION['jog2'] = $defensor;
						$_SESSION['ultimo_turno'] = 2;
					} else {
						$_SESSION['jog2'] = $atacante; $_SESSION['jog1'] = $defensor;
						$_SESSION['ultimo_turno'] = 1;
					}

					
					//echo $atacante['dano_final'] .'/'. $atacante['dano'];
					if ($_GET['detalhes']) {
						echo "<br />ATA_AGI: " . $atacante['agilidade'];
						echo "<br />ATA_PON: " . $atacante['sorte_pontaria'] . ' / '. $atacante['pontaria'];
						echo "<br />DEF_ESC: " . $defensor['escapar'] . ' / '. $defensor['agilidade'];
					}
					if ($_SESSION['jog1']['hp'] <= 0) {
						$jog2_vit++;
						//echo $jog2_vit;
					}
					if ($_SESSION['jog2']['hp'] <= 0) {
						$jog1_vit++;
						//echo $jog1_vit;
					}
					//if ($_SESSION['turno'] == 2) die();
					//echo $jog1_vit; echo $jog2_vit; 
				}
				//echo $k;
				//echo '</font>';
			}
			echo $jog2_vit . ' / '. $jog1_vit;
		}
		echo '</td>';
	}
	echo '</tr>';
}
?>
